<?php         
/*
Autor: Jonathan Vindas Abarca
Fecha: 13/07/2012
Descripción: Este archivo contiene la declaración de la clase controladora de linea detalle.
Bitacora de modificaciones:
<
    Autor: 
    Fecha: 
    Descripción: 
>
*/

    function mensajeConfirmacionLineaDetalles($bandera)
    {
        try 
        {
            if($bandera=='Agrega')
            {
                ?>
                <script type="text/javascript">
                $().message("Se agrego el art&iacute;culo satisfactoriamente.");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php
            }
            elseif ($bandera=='Modifica') 
            {            
                ?>
                <script type="text/javascript">
                $().message("Se modifico el art&iacute;culo satisfactoriamente.");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php        
            }
            elseif ($bandera=='Elimina') 
            {        
                ?>
                <script type="text/javascript">
                $().message("Se elimino el art&iacute;culo satisfactoriamente.");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php
            }
            elseif ($bandera=='ExisteLinea') 
            {        
                ?>
                <script type="text/javascript">
                $().message("No se puede Borrar, existen Lineas dependientes al Embalaje.");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php
    
            }
            elseif ($bandera=='SinPermisos') 
            {
                ?>
                <script type="text/javascript">
                $().message("Su usuario no posee permisos para esta acci&oacute;n.");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php
            }
        }
        catch (Exception $e) 
        {
            echo 'Excepción capturada: ',  $e->getMessage(), "\n";
        }
    }
    
    function enviarGuardarLineasDetalles()
    {
        require_once '../modelos/lineaDetallesModelo.php';
        require_once('FirePHPCore/FirePHP.class.php');
        $firephp = FirePHP::getInstance(true);
        /*Se toman de los campos hidden*/
        $codigoGuia=$_POST['codigoGuiaAgregarLineaDetalle'];
        $codigoEmbalaje=$_POST['codigoEmbalajeAgregarLineaDetalle'];        
        $numeroLinea= $_POST['numeroLineaAgregarLineaDetalle'];
        /*Se toman los campos de orden, articulo y cantidad*/
        $aDoor = $_POST['grupo'];		
		$che=$_POST["formDoor"];
		$p = count($che);
		$valores=Array();		
			//echo("<p>El check $j esta seleccionado");
			for($j=0; $j < $p; $j++)
			{
				$valorItem=IsChecked("formDoor",$che[$j]);				
				if($valorItem==true){
                                        /*numero Articulo se debe separ*/
                                        $valorCheck=$che[$j];
                                        $firephp->log($valorCheck, 'valorCheck');
                                        $pieces = explode("-", $valorCheck);
					$valor['orden']=$pieces[0];
                                        /************/
					$valor['articulo']=$pieces[1];
                                        $valor['numeroLinea']=$numeroLinea;
                                        $valor['codigoEmbalaje']=$codigoEmbalaje;
                                        $valor['codigoGuia']=$codigoGuia;
                                        $valor['cantidad']=$aDoor[$j];;                                                                                                                        
					array_push($valores,$valor);					
				}
			}
		$firephp->log($valores, 'valores');
                
		foreach($valores as $item){
			$orden=$item['orden'];
                        $articulo=$item['articulo'];
                        $linea=$item['numeroLinea'];
                        $embalaje=$item['codigoEmbalaje'];
                        $guia=$item['codigoGuia'];
			$cant=$item['cantidad'];
                        agregarLineaDetalle($orden, $articulo,$guia,$embalaje,$cant,$linea);
		 $bandera = 'Agrega';                                                                                                  
                $accion='Agrego registro'; 
          //          $firephp->log($valores, 'valores');
		}
            listarLineaDetalles($codigoGuia,$codigoEmbalaje,$orden, $numeroLinea);
            mensajeConfirmacionLineaDetalles($bandera); 
    }
    
    function IsChecked($chkname,$value)
    {
        if(!empty($_POST[$chkname]))
        {
            foreach($_POST[$chkname] as $chkval)
            {
                if($chkval == $value)
                {
                    return true;
                }
            }
        }
        return false;
    }
    
    /*function agregarLineaDetalleDesdeTabla() 
    {
        require_once '../modelos/lineaDetallesModelo.php';
        require_once('FirePHPCore/FirePHP.class.php');
        $firephp = FirePHP::getInstance(true);
        $bandera = false;        
        try 
        {                     
            $codigoOrden=$_GET['codigoOrden'];    
            $codigoArticulo=$_GET['codigoArticulo'];            
            $codigoGuia=$_GET['codigoGuia'];
            $codigoEmbalaje=$_GET['codigoEmbalaje'];
            $cantidad= $_GET['cantidadSolicitada'];        
            $numeroLinea= $_GET['numeroLinea'];        
            $existe= encontrarLineaDetalleDuplicada($codigoOrden,$codigoArticulo,$codigoGuia,$codigoEmbalaje,$numeroLinea);                     
            $firephp->log($existe,'Existe Articulo');            
            if($existe==false)
            {                        
                agregarLineaDetalle($codigoOrden, $codigoArticulo, $codigoGuia,$codigoEmbalaje,$cantidad,$numeroLinea);
                $bandera = 'Agrega';                                                                                                  
                $accion='Agrego registro';    
            } 
            else
            {
                //en caso de que usuario ingrese de un articulo que ya existe
                //se asume que lo que desea hacer es cambiar la cantidad de ese articulo                
                //if(validarPermisos('modificarTransportista'))
                modificarLineaDetalle($codigoOrden,$codigoArticulo,$codigoGuia,$codigoEmbalaje,$cantidad, $numeroLinea);
                $bandera='Modifica';               
                $accion='Modifico registro';    
            }
            listarLineaDetalles($codigoGuia,$codigoEmbalaje,$codigoOrden, $numeroLinea);
            mensajeConfirmacionLineaDetalles($bandera); 
        }           
        catch (Exception $e) 
        {
            echo 'Excepción capturada: ',  $e->getMessage(), "\n";
        }       
    }*/
    
    function direccionarAgregarLineaDetalle()
    {                
        /*Se necesita recibir el numeroLinea*/
        require_once 'dataControlador.php';     
        //require_once 'ajaxControlador.php';     
        require_once '../modelos/lineasModelo.php';                                  
        require_once '../modelos/lineaDetallesModelo.php';                                  
        require_once '../modelos/embalajesModelo.php';        
        $codigoGuia=$_GET['codigoGuia'];
        $codigoEmbalaje=$_GET['codigoEmbalaje'];                
        $numeroLinea=$_GET['numeroLinea'];
        //obtenerPermisoGenerico
        if(validarPermisos('listarArticulosConDisponibles'))
        {            
            $accion = 'agregarLineaDetalles';            
            $lineasDetalleAgregadas=listarArticulosConDisponibles($codigoGuia,$codigoEmbalaje,$numeroLinea);
            /*Se agrega el campo para mostrar el nombre de embalaje*/
            $nombreEmbalaje=encontrarNombreEmbalaje($codigoEmbalaje);
            $total_registros =sizeof($lineasDetalleAgregadas);                    
            require 'GuiasEnvio/agregarLineaDetalle.php';
        }        
        else
        {
            $items = buscarLineasPorGuia($codigoGuia);        
            $total_registros =sizeof($items);                    
            require 'GuiasEnvio/listarLinea.php';        
            mensajeConfirmacionLineaDetalles('SinPermisos'); 
        }        
    }
    
    function eliminarLineaDetalles() 
    {
        //require_once('FirePHPCore/FirePHP.class.php');
        //$firephp = FirePHP::getInstance(true);
       require '../modelos/lineaDetallesModelo.php';
       $codigoOrden=$_GET['codigoOrden'];
       $codigoArticulo=$_GET['codigoArticulo'];
       $codigoGuia=$_GET['codigoGuia'];
       $codigoEmbalaje=$_GET['codigoEmbalaje'];
       $numeroLinea=$_GET['numeroLinea'];                
       //$firephp->log($codigoOrden,"codigoOrden");        
       //if(validarPermisos('modificarTransportista'))
       eliminarLineaDetalleControlador($codigoOrden,$codigoArticulo,$codigoGuia,$codigoEmbalaje,$numeroLinea);
       $bandera='Elimina';        
       listarLineaDetalles($codigoGuia,$codigoEmbalaje,$codigoOrden, $numeroLinea);
       mensajeConfirmacionLineaDetalles($bandera);
    }
    
    function listarLineaDetalles($guia,$embalaje,$pcodigoOrden, $numeroLinea) 
    {
        require_once '../modelos/lineaDetallesModelo.php';
        require_once '../modelos/embalajesModelo.php';        
        $accion='mostrarDetalleOrdenCompra';
        $codigoGuia=$guia;
        $codigoEmbalaje=$embalaje;
        /*si la orden de compra tiene varios articulo y no quiere volver a digitar la numero de orden de compra
         esto debe ser descomentado
         $codigoOrden=$pcodigoOrden;
        */
        //$lineasDetalleAgregadas = buscarXGuiaEmbalaje($guia,$embalaje);
        $nombreEmbalaje=encontrarNombreEmbalaje($codigoEmbalaje);
        $lineasDetalleAgregadas=listarArticulosConDisponibles($codigoGuia,$codigoEmbalaje,$numeroLinea);
        $total_registros =sizeof($lineasDetalleAgregadas);                            
        require 'GuiasEnvio/agregarLineaDetalle.php';
    }
    
    function listatLineasDetallePorGuiaEmbalaje()
    {
        require_once '../modelos/lineaDetallesModelo.php';
        $codigoGuia=$_GET['codigoGuia'];
        $codigoEmbalaje=$_GET['codigoEmbalaje'];
        $items=buscarXGuiaEmbalaje();
        $total_registros =sizeof($items);                    
        require 'GuiasEnvio/listarLineaDetalle.php';                
    }
     
    function modificarLineaDetalles() 
    {
        require_once '../modelos/lineaDetallesModelo.php';
        require_once('FirePHPCore/FirePHP.class.php');
        $firephp = FirePHP::getInstance(true);        
        $codigoOrden=  $_GET['codigoOrden'];
        $codigoArticulo= $_GET['codigoArticulo'];
        $codigoGuia= $_GET['codigoGuia'];
        $codigoEmbalaje= $_GET['codigoEmbalaje'];
        $valorCantidad= $_GET['cantidad'];                
        $numeroLinea=$_GET['numeroLinea'];                
        //$accion = 'modificarLineaDetalles';
        //if(validarPermisos('modificarTransportista'))
        modificarLineaDetalle($codigoOrden,$codigoArticulo,$codigoGuia,$codigoEmbalaje,$valorCantidad,$numeroLinea);
        $bandera='Modifica';
        listarLineaDetalles($codigoGuia,$codigoEmbalaje,$codigoOrden, $numeroLinea);
        mensajeConfirmacionLineaDetalles($bandera);    
    }                     
    
    function mostrarLineaDetalle()
    {               
        require '../vistas/GuiasEnvio/agregarLineaDetalle.php';
    }
             
    function paginaPrincipalLineaDetalles()
    {         
        require '../vistas/portada.php';
    }
          
    function validarIdLineaDetalles($orden,$articulo,$guia,$embalaje) 
    {       
        require_once '../modelos/lineaDetallesModelo.php';   
        $existe = encontrarLineaDetalles($orden,$articulo,$guia,$embalaje);
        return $existe;
    }
?>
